#ifndef _H265_TRANS_H264_
#define _H265_TRANS_H264_

extern "C"
{
  #include "libavcodec/avcodec.h"
  #include "libavformat/avformat.h"
  #include "libavfilter/buffersink.h"
  #include "libavfilter/buffersrc.h"
  #include "libavutil/opt.h"
  #include "libavutil/pixdesc.h"
}

#ifdef _WIN32
#define Easy_API  __declspec(dllexport)
#define Easy_APICALL  __stdcall
#else
#define Easy_API
#define Easy_APICALL 
#endif

#define EasyH265Trans_Handle void*

#ifdef __cplusplus
extern "C"
{
#endif
	Easy_API EasyH265Trans_Handle Easy_APICALL InitTransCode(const char *stream, int width, int height);

	Easy_API int Easy_APICALL TransCodeWork(EasyH265Trans_Handle handle, uint8_t* buffer, int size, uint32_t pts, uint32_t dts, uint8_t* bout, uint* outsize,uint32_t *ppts, uint32_t *pdts, int* hasKeyFrame);

	Easy_API void Easy_APICALL ReleaseTransCode(EasyH265Trans_Handle handle);

#ifdef __cplusplus
}
#endif

#endif
